package com.monitor.config.yunke;


import com.monitor.commons.TextUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

@Component
public class YunKeUtil {
    @Autowired
    private YunKeConfig yunKeConfig;

    public Map<String, String> getHeadMap(long timestamp){
        Map<String, String> headsMap = new HashMap<>();
        headsMap.put("company", yunKeConfig.getCompanyKey());//企业注册开通时会提供，一个企业可能会有多个公司，不同的公司有且只有唯一公司码
        headsMap.put("partnerId", yunKeConfig.getPartnerId());//当您需要获取全公司数据或者添加用户信息等业务时，通常使用超管ID。如您需要获取指定员工的业务信息时，此处为员工ID
        headsMap.put("timestamp", timestamp + "");//unix时间戳，精确到毫秒。时间戳时请求开放平台接口时的安全验证要素之一，如调用接口时服务方收到的时间戳和当前时间相差1分钟以及上时间时，接口会直接返回错误。
        headsMap.put("key", yunKeConfig.getKey());//在PC管理系统中申请
        String md5 = TextUtils.md5(yunKeConfig.getKey() + yunKeConfig.getCompanyKey() + yunKeConfig.getPartnerId() + timestamp).toUpperCase();
        headsMap.put("sign", md5);
        return  headsMap;
    }

    public Map<String, String> getPartnerHeadMap(String partnerId){
        long timestamp = new Date().getTime();
        Map<String, String> headsMap = new HashMap<>();
        headsMap.put("company", yunKeConfig.getCompanyKey());//企业注册开通时会提供，一个企业可能会有多个公司，不同的公司有且只有唯一公司码
        headsMap.put("partnerId", yunKeConfig.getPartnerId());//当您需要获取全公司数据或者添加用户信息等业务时，通常使用超管ID。如您需要获取指定员工的业务信息时，此处为员工ID
        headsMap.put("timestamp", timestamp + "");//unix时间戳，精确到毫秒。时间戳时请求开放平台接口时的安全验证要素之一，如调用接口时服务方收到的时间戳和当前时间相差1分钟以及上时间时，接口会直接返回错误。
        headsMap.put("key", yunKeConfig.getKey());//在PC管理系统中申请
        String md5 = TextUtils.md5(yunKeConfig.getKey() + yunKeConfig.getCompanyKey() + yunKeConfig.getPartnerId() + timestamp).toUpperCase();
        headsMap.put("sign", md5);
        return  headsMap;
    }
}
